uniform sampler2D color;
uniform float intensity; // 0.010 is a good value
float samples[11];// = {0.0222244,0.0378346,0.0755906,0.1309775,0.1756663,0.1974126,0.1756663,0.1309775,0.0755906,0.0378346,0.0222244};

void main()
{
	samples[0] = 0.0222244;
	samples[1] = 0.0378346;
	samples[2] = 0.0755906;
	samples[3] = 0.1309775;
	samples[4] = 0.1756663;
	samples[5] = 0.1974126;
	samples[6] = 0.1756663;
	samples[7] = 0.1309775;
	samples[8] = 0.0755906;
	samples[9] = 0.0378346;
	samples[10] = 0.0222244;
	vec4 sum = vec4(0);
	vec2 texcoord = vec2(gl_TexCoord[0]);
	int j;
	int i;
	for( i= -5 ;i < 5; i++)
	{
		for( j= -5 ;j < 5; j++)
		{
			sum += texture2D(color, texcoord + vec2(j, i)*0.004) * samples[j+5];
		}
	}
	if (texcoord.x<0.5)
		gl_FragColor = texture2D(color, texcoord);
	else
		gl_FragColor = sum*sum*intensity + texture2D(color, texcoord);
}